package com.xmtlxx.wms.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.xmtlxx.common.annotation.ExcelDictFormat;
import com.xmtlxx.common.convert.ExcelDictConvert;
import com.xmtlxx.system.domain.SysOss;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;


/**
 * 库存视图对象 t_inventory
 *
 * @author xmtlxx
 * @date 2022-08-15
 */
@Data
@ApiModel("库存视图对象")
@ExcelIgnoreUnannotated
public class InventoryVo {

    private static final long serialVersionUID = 1L;

    /**
     * 库存ID
     */
//    @ExcelProperty(value = "库存ID")
    @ApiModelProperty("库存ID")
    private String id;

    /**
     * 仓库ID
     */
    @ApiModelProperty("仓库ID")
    private String storeId;

    @ExcelProperty(value = "仓库")
    private String storeName;

    /**
     * 库区ID
     */

    @ApiModelProperty("库区ID")
    private String areaId;

    @ExcelProperty(value = "库区")
    private String areaName;

    /**
     * 库位ID
     */
    @ApiModelProperty("库位ID")
    private String locatorId;

    @ExcelProperty(value = "库位")
    private String locatorName;

    /**
     * 货品编号
     */
    @ExcelProperty(value = "货品编号")
    @ApiModelProperty("货品编号")
    private String pno;

    /**
     * RFID
     */
    @ExcelProperty(value = "RFID")
    @ApiModelProperty("RFID")
    private String rfid;

    /**
     * 货品名称
     */
    @ExcelProperty(value = "货品名称")
    @ApiModelProperty("货品名称")
    private String name;

    /**
     * 入库时间
     */
    @ExcelProperty(value = "入库时间")
    @ApiModelProperty("入库时间")
    private Date intime;

    /**
     * 入库数量
     */
    @ExcelProperty(value = "入库数量")
    @ApiModelProperty("入库数量")
    private Long innums;

    /**
     * 出库数量
     */
    @ExcelProperty(value = "出库数量")
    @ApiModelProperty("出库数量")
    private Long outnums;

    /**
     * 调用数量
     */
    @ExcelProperty(value = "调用数量")
    @ApiModelProperty("调用数量")
    private Long tnums;

    /**
     * 归还数量
     */
    @ExcelProperty(value = "归还数量")
    @ApiModelProperty("归还数量")
    private Long rnums;

    /**
     * 库存数量
     */
    @ExcelProperty(value = "库存数量")
    @ApiModelProperty("库存数量")
    private Long nums;

    /**
     * 处置数量
     */
    @ExcelProperty(value = "处置数量")
    @ApiModelProperty("处置数量")
    private Long deals;

    @ExcelProperty(value = "出库取证数")
    @ApiModelProperty(value = "出库取证数")
    private Long eoutnums;

    @ExcelProperty(value = "调用取证数")
    @ApiModelProperty(value = "调用取证数")
    private Long etnums;

    /**
     * 最新盘点时间
     */
    @ExcelProperty(value = "最新盘点时间")
    @ApiModelProperty("最新盘点时间")
    private Date lastTime;

    /**
     * 下一次盘点时间
     */
    @ExcelProperty(value = "下一次盘点时间")
    @ApiModelProperty("下一次盘点时间")
    private Date nextTime;

    /**
     * 机构id
     */

    @ApiModelProperty("机构id")
    private Long deptId;

    @ExcelProperty(value = "机构")
    private String deptName;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    @ApiModelProperty("备注")
    private String remark;

    /**
     * 状态
     */
    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "wms_stock_status")
    @ApiModelProperty("状态")
    private String status;

    /**
     * 图片附件
     */
    @ExcelProperty(value = "图片附件")
    @ApiModelProperty("图片附件")
    private String pics;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @ExcelProperty(value = "更新时间")
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /**
     * 更新人
     */
    @ExcelProperty(value = "更新人")
    @ApiModelProperty("更新人")
    private String updateBy;

    /**
     * 创建人
     */
    @ExcelProperty(value = "创建人")
    @ApiModelProperty("创建人")
    private String createBy;

    /**
     * 删除标识
     */
    @ExcelProperty(value = "删除标识", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_del_flag")
    @ApiModelProperty("删除标识")
    private String delFlag;


    private String stagingId;

    /**
     * 移交类型
     */
    @ApiModelProperty(value = "移交类型")
    private String type;

    @ApiModelProperty("案件编号")
    private String caseNo;

    @ApiModelProperty("财物特征")
    private String character;

    @ApiModelProperty("一级分类")
    private String classifyName;

    @ApiModelProperty("二级分类")
    private String secondClassifyName;

    @ApiModelProperty("三级分类")
    private String thirdClassifyName;

    private String classifyId;

    private List<SysOss> oss;

    /**
     * 办案民警
     */
    private String personName;

    /**
     * 保管单位
     */
    private Long belongDeptId;

    /**
     * 保管单位
     */
    private String belongStoreId;

    /**
     * 保管场所
     */
    private String belongDeptName;

    /**
     * 单位
     */
    private String unit;

    /**
     * 箱号
     */
    private String boxNo;

    /**
     * 保管密码
     */
    @ApiModelProperty("保管密码")
    private String password;

    /**
     * 保管密码
     */
    @ApiModelProperty("上架密码")
    private String putPassword;

    private String transferName;

    private String officeName;

    @ApiModelProperty("财物入库编码")
    private String qrcode;

    private Long officeId;

    private String dictLabel;

    private String dictValue;

    private Long totals;

    private String regionName;

    private String region;

    private String groupName;

    private String cabinetName;

    private String floors;

    private Boolean checked = false;

    @ApiModelProperty("是否调用未归还")
    private Integer isCallNotReturn;

}
